home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
COMMUNIC
/
H191.ZIP
/
CA29-4.EXE
/
TALKER.DOC
< prev
next >
Wrap
Text File
|
1992-10-12
|
25KB
|
935 lines
TALKER: Voice driver Script and Overlay for COM-AND
--------------------------------------------
TALKER driver Script and Overlay for COM-AND
--------------------------------------------
COM-AND, and the TALKER script-set (TALKER.CMD, TALKER.OVL et
al) are copyright 1992 by CABER Software. TALKER is distributed
with the COM-AND communications system as an accessory. TALKER
is intended for use ONLY with COM-AND. COM-AND is "shareware".
If you USE COM-AND after evaluating it, you MUST pay for it.
The complete user license and registration information is to be
found in the file REGISTER.DOC. Limitations on redistribution
of COM-AND are set out in the file VENDOR.DOC. These two files
are included with the COM-AND program release.
CABER Software
R. (Scott) McGinnis
P.O. Box 3607 Mdse Mart
Chicago, IL 60654-0607
GEnie, Delphi: TARTAN
CIS .......... 73147,2665
Internet ..... 73147.2665@compuserve.com
Version 1.1: 921012
TALKER: Voice driver Script and Overlay for COM-AND
TALKER version 1.1 is a part of the COM-AND communications package.
COM-AND is copyright 1992, by CABER Software. All rights are
reserved world wide, excepting redistribution under the shareware
concept. COM-AND is distributed freely and may be copied by anyone
for any number of machines, for purposes of evaluation.
Restrictions on redistribution are set out in the document file
VENDOR.DOC. You may NOT distribute COM-AND or its documentation in
connection with ANY commercial venture, product, publication or
service without written approval from CABER Software.
COM-AND is distributed as shareware. You may try COM-AND without
charge, to evaluate its usefulness to you. You may evaluate COM-AND
for a period of up to 30 days. If you continue to use COM-AND after
30 days, then you must pay for it. Please read REGISTER.DOC for the
terms and conditions of the User License.
The author supports COM-AND through electronic mail on the various
on-line services. Several BBSes focused on COM-AND exist at this
time. Voice support for COM-AND is also available from Support
EtCetera in Long Beach, CA. Please read REGISTER.DOC for details
on support, and COM-AND BBSes.
CABER Software is a member of the Association of Shareware Profes-
sionals (ASP). The ASP offers an ombudsman service to help you
resolve shareware related disputes with ASP members. Please read
the file REGISTER.DOC for information on how to contact the ASP
Ombudsman.
COM-AND is supplied "as-is" with no warranties expressed or implied.
Neither CABER software nor the author will be liable for any damages
or lost revenues incurred through the use of this program or any of
its accessories and utilities beyond the registration price paid.
Version 1.1: 921012
TALKER: Voice driver Script and Overlay for COM-AND
Table of Contents
-----------------
I. Introduction .............................................. page 1
A. What is COM-AND? ........................................ page 1
B. The VOICE.EXE Driver .................................... page 2
C. The TALKER.OVL overlay and TALKER.CMD script ............ page 2
D. The SPEECH.COM Driver ................................... page 3
E. This document ........................................... page 3
II. Using TALKER.CMD ........................................... page 4
III. TALKER.OVL programming ..................................... page 5
SCALL 6,Nx ; Open driver ............................... page 5
SCALL 9 ; Close driver .............................. page 6
SCALL 12,Sx,Nx ; Load exceptions ........................... page 6
SCALL 0,Sx ; Speak english text ........................ page 6
SCALL 3,Sx ; Speak phonetic text ....................... page 6
SCALL 15,Nx ; Set rate .................................. page 7
SCALL 18,Nx ; Set pitch ................................. page 7
SCALL 21,Sx ; Set driver file name ...................... page 7
IV. VOICEON, VOICEOFF, and TESTVOICE scripts ................... page 8
V. TALKER.OVL termination ..................................... page 9
VI. Program Requirements ....................................... page 10
VII. Program and Author Information ............................ page 11
Appendices
----------
A. VOICE.EXE arpabet .......................................... page 12
B. SPEECH.COM arpabet ......................................... page 13
C. Exception file ............................................. page 14
Version 1.1: 921012
TALKER: Voice driver for COM-AND Page 1
I. Introduction
A. What is COM-AND?
COM-AND for the IBM PC and compatibles is a communications
program for use by itself, or for use with several integrated
accessory programs (which themselves may be used independent of
COM-AND). COM-AND provides standard comm program functions: a
dialing directory, macros, disk logging, binary and ASCII file
transfers, scripted execution and so on.
Four accessories are available for use with COM-AND at the date of
this writing. These accessories are for use over conferencing
services such as People/Link's PARTY, GEnie's RTC and CIS's CB:
PC-VCO provides a way to 'see' and 'hear' people talking.
CCHESS supports chess games with another conference user.
CBRIDG supports bridge games with other conference users.
CCOLOR tracks conference users, coloring each speaker's
received text differently
These accessories are available uploaded separately, not as a
part of COM-AND's release. Please refer to the accessory
documents for more detailed discussions of their function.
COM-AND executes as a CRT based comm program either in 25 line
text mode on a CGA or monochrome screen, or 25/43 line mode on an
EGA display. When an accessory is loaded through COM-AND (or when
COM-AND is loaded by an accessory), most of the functions of
COM-AND are available through the accessory.
COM-AND and its accessories (PC-VCO, CCHESS, CBRIDG, and CCOLOR)
may be copied freely and distributed to anyone for any number of
machines, for purposes of evaluation. The author offers COM-AND
as "shareware". If you USE COM-AND after evaluating it, you MUST
pay for it.
Version 1.1: 921012
TALKER: Voice driver for COM-AND Page 2
I. Introduction (continued)
B. The VOICE.EXE driver
VOICE.EXE is a TSR speaker driver performing phoneme (text) to
speech (sound) synthesis. VOICE.EXE was released with version 2.2
of PC-VCO. VOICE.EXE was created to support PC-VCO, with the
following goals:
o VOICE.EXE was not to be CPU speed dependant
o VOICE.EXE would run with any version of MS-DOS after 2.0
o VOICE.EXE would implement a broader 'arpabet' (the phoneme
set) compatible with the MacIntosh/Amiga arpabet
o VOICE.EXE would permit a limited variance of speech pitch
and speaking rate
o VOICE.EXE might be loaded 'on top' of COM-AND and deleted
after use (and it may be used TSR as well!)
Refer to the document VOICE.DOC for more details.
C. The TALKER.OVL overlay and TALKER.CMD script
The use of VOICE.EXE was previously limited to use with PC-VCO.
Beginning with COM-AND version 2.6, VOICE.EXE may be accessed
through a script named TALKER.CMD and a machine language script
subroutine overlay named TALKER.OVL.
o TALKER.CMD loads TALKER.OVL as an overlay and:
.. TALKER.OVL looks for VOICE.EXE loaded as a TSR
.. TALKER.OVL loads VOICE.EXE if VOICE is not TSR
... it must be in the current subdirectory,
... there must be sufficient memory
o TALKER.CMD loads an exception file (discussed below) if
found on the current subdirectory, for text to phoneme
conversion
o TALKER.CMD reads the comm line, and the keyboard. Text
Received text is 'spoken' through VOICE.EXE. Certain
COM-AND functions are emulated
o When TALKER.CMD is terminated (with an ESC), if TALKER.OVL
loaded VOICE.EXE, VOICE.EXE is terminated
Version 1.1: 921012
TALKER: Voice driver for COM-AND Page 3
I. Introduction (continued)
D. The SPEECH.COM driver
A resident speech driver SPEECH.COM and associated programs (SAY
and READ) were originally found on a public domain Bulletin Board
in Chicago. The author's name is not contained in the document,
and no statement is made as to its ownership or copyright.
The author IS identified within the executable object files (as
Andy McGuire... incorrectly mentioning Douglas Sisco in earlier
documents). I have attempted to find anyone who knows of Andy
McGuire, with no success to date. SPEECH.COM is not included in
this release (nor has it has been in any - its not mine to give).
It is available on most services as SPEECH.ARC.
The current speech driver (by Andy McGuire) does not function
with DOS 3.xx (so its document states), without patching.
The driver is limited to a 4.77 Mhz clock as well. I published
a patch for SPEECH.COM... but the patch is mostly ineffective
above 8Mhz.
TALKER.OVL does not interface SPEECH.COM at this time.
E. This document
This document describes the use and function of TALKER.CMD,
TALKER.OVL, and associated scripts. At this time, minimal
programming specifics are included; VOICE.EXE is offered
ONLY for use with COM-AND and PC-VCO.
COM-AND registrants may make private arrangements with this
author for other uses. We don't really look for this, as this
code is well below the state of the art, at this time.
Version 1.1: 921012
TALKER: Voice driver for COM-AND Page 4
II. Using TALKER.CMD
TALKER.CMD is a script for use by COM-AND. COM-AND must be loaded
in order to invoke TALKER... refer to the COM-AND documentation for
details on the installation/use of COM-AND and for details on the
COM-AND script language (should you wish to review TALKER.CMD).
-------------------------------------------------------------------
. Place TALKER.CMD and TALKER.OVL on the subdirectory from which
you execute COM-AND or on the current subdirectory.
. The VOICE.EXE driver and exception file (if any) must be avail-
able on the current subdirectory (unless VOICE is manually loaded
before COM-AND).
. Load COM-AND in the usual manner. Once COM-AND is started, and
you have logged on to a host system (i.e. are receiving text
you'd like to hear):
. Begin the TALKER script by pressing F2 in COM-AND, and entering:
TALKER<cr>
. Terminate TALKER with ESC. If TALKER loaded VOICE.EXE, VOICE.EXE
is terminated.
. For a summary of TALKER's function, press F10.
-------------------------------------------------------------------
NOTE: You may load VOICE.EXE before loading COM-AND. Loaded
manually, VOICE.EXE becomes a terminate-and-stay-resident program.
It may be terminated with the included VEND.COM utility. Unless
terminated, it takes up space until you next boot.
-------------------------------------------------------------------
That's all there is to it. TALKER performs text-to-phoneme conver-
sion and passes the phonemes to VOICE.EXE for sounding. The quality
is about what you'd expect without digital-to-analogue conversion...
but its a start.
Version 1.1: 921012
TALKER: Voice driver for COM-AND Page 5
III. TALKER.OVL programming
The file TALKER.OVL is a set of machine language subroutines to a
COM-AND script. It is not executable by itself. A COM-AND script
loads an overlay with the OVERLAY statement, and invokes routines
in the overlay with the SCALL statement.
The SCALL statement requires an address in the overlay to call,
and optionally may specify a list of variables for passing and for
returning values. TALKER.OVL has the following entry points:
Address Passed Returned Function
------- ------ -------- -------------------------------------------
0 Sx - Voice ENGLISH text string in Sx
3 Sx - Voice phonetic text string in Sx
6 - Nx Open the voice driver (Nx returns 0,-1;
0 -> no error)
9 - - Close the voice driver
12 Sx Nx Load an exception file (name passed in Sx)
returned Nx is 0 (no error) or DOS error)
15 Nx - Set speaking rate (21-1000 wpm, 150 usual)
18 Nx - Set speaking pitch (21-1000 Hz, 110 usual)
21 Sx - Set driver file name (name passed in Sx)
SCALL 6,Nx ; Open driver
The entry point at address 6 'opens' the voice driver. First,
it looks for VOICE.EXE loaded as a TSR. If not found, it
attempts to load VOICE.EXE. For this to occur, VOICE.EXE must
be in the current subdirectory, and there there must be
sufficient memory available (21K).
Nx returns 0 to indicate no error, and -1 to indicate failure.
Version 1.1: 921012
TALKER: Voice driver for COM-AND Page 6
III. TALKER.OVL programming (continued)
SCALL 9 ; Close driver
The entry point at address 9 'closes' TALKER.OVL and the voice
driver. If the voice driver was loaded during the 'open', the
voice driver is terminated.
No parameters are passed or returned.
SCALL 12,Sx,Nx ; Load exceptions
The entry point at address 12 'loads' an exception file. The
content of an exception file is discussed in Appendix C below.
This file directs the text to phoneme conversion of certain,
specific words.
The open call above must be performed prior to this call.
Sx passes a file name; Nx returns 0 to indicate error, and
other than 0 to indicate a DOS file error.
SCALL 0,Sx ; Speak english text
The entry point at address 0 'speaks' a line of english text.
The text to phoneme conversion is performed according to the
exception file loaded, and then according to a table of rules
for pronouncing English.
The open call above must be performed prior to this call.
Sx passes the text to voice.
SCALL 3,Sx ; Speak phonetic text
The entry point at address 3 'speaks' phonetic text. No text
to phoneme conversion is performed... the text is passed to
the voice driver directly.
The open call above must be performed prior to this call.
Sx passes the text to voice. The VOICE.EXE arpabet is listed
in Appendix A below.
Version 1.1: 921012
TALKER: Voice driver for COM-AND Page 7
III. TALKER.OVL programming (continued)
SCALL 15,Nx ; Set rate
The entry point at address 15 'sets' voice driver's speaking
rate. This controls (approximately) the duration of a single
phoneme. The usual value is 150 words per minute (wpm).
The open call above must be performed prior to this call.
Nx passes a value (21-1000).
SCALL 18,Nx ; Set pitch
The entry point at address 18 'sets' voice driver's speaking
pitch. This controls (approximately) the fundamental pitch
for a single phoneme. The usual value is 110 Hz.
The open call above must be performed prior to this call.
Nx passes a value (21-1000).
SCALL 21,Sx ; Set driver file name
The entry point at address 21 defines the file name used to
load VOICE.EXE. Note: it is not currently invoked by the
TALKER.CMD script.
This must be performed prior to an open call (above).
Sx passes the file name (may be qualified with drive and
subdirectory).
Version 1.1: 921012
TALKER: Voice driver for COM-AND Page 8
IV. VOICEON, VOICEOFF, and TESTVOICE scripts
An alternate usage of TALKER.OVL is demonstrated with the VOICEON,
VOICEOFF and TESTVOICE scripts.
VOICEON loads TALKER.OVL and opens (loads) the VOICE driver. It
then sets an EXIT scriptname, to execute when COM-AND terminates
(via Alt-X or script BYE). [The EXIT script is VOICEOFF.] VOICEON
then terminates (or returns to the caller), leaving TALKER.OVL
available for use.
VOICEON sets the EXIT script to ensure the VOICE driver, if loaded
by TALKER.OVL, is terminated before COM-AND terminates. This is
highly desirable, as, if COM-AND terminates and the VOICE driver is
left running, a 'hole' appears in DOS's memory map. DOS does not
like such 'holes'. Should this occur, the VEND utility terminates
the left-over VOICE driver, and makes DOS happy.
VOICEOFF terminates TALKER.OVL, terminating VOICE.EXE if it was
loaded during VOICEON. If an exit script is currently set, VOICEOFF
exits (or returns to its caller). If no exit script is set, VOICEOFF
believes IT is the EXIT script, and terminates COM-AND.
Thus, VOICEOFF may be issued at any time before COM-AND terminates,
and acts like any other script. However, if not executed before
COM-AND terminates, it executes UPON termination.
TESTVOICE is a simple script demonstrating that once TALKER.OVL is
loaded, ANY subsequent script may test for its presence and issue
'spoken text'. In this case, phonetic text is used for maximum
clarity. Pitch and rate are set too, prior to speaking.
These functions have been broken into separate scripts for
demonstration purposes. They might easily be incorporated into a
large script as an adjunct to prompts windows and such <grin>.
Version 1.1: 921012
TALKER: Voice driver for COM-AND Page 9
V. TALKER.OVL termination
The TALKER.OVL overlay does not, itself, hook any interrupt vectors
or change the machine state in any way requiring special treatment
at termination. HOWEVER, the overlay TALKER.OVL can load the speech
driver as a TSR above COM-AND. If TALKER loaded VOICE.EXE and
COM-AND is terminated, memory occupied by COM-AND and by TALKER are
freed, but VOICE.EXE remains in memory.
The TALKER script does not allow premature exit. ESCape pressed dur-
ing the script closes the overlay gracefully (and therefore unloads
VOICE). The problem is not as simple with VOICEON. VOICEON sets
VOICEOFF for execution as a script when COM-AND is terminated, hope-
fully closing TALKER. However, an intervening script might load a
new overlay (not knowing how to close TALKER.OVL), or might replace
the script to-be-executed on exit.
Therefore, the 1.1 version scripts TALKER and VOICEON (first dis-
tributed with COM-AND 2.8) load the TALKER.OVL overlay specifying
entry address '9' for execution before TALKER is terminated. This
entry point, documented above, allows TALKER to direct VOICE.EXE
to unload.
Therefore, VOICE.EXE is unloaded properly unloaded no matter how
COM-AND terminates, or what intervening scripts are run. The end-
action entry point is executed whenever TALKER might be removed.
Version 1.1: 921012
TALKER: Voice driver for COM-AND Page 10
VI. Program requirements
COM-AND is coded for an IBM PC or DOS compatible machine.
Certain I/O is done through the 'Handle' oriented I/O routines
available to DOS 2.0. Therefore DOS 2.0 is a minimum requirement.
VOICE.EXE requires 21K for itself.
TALKER.OVL (Version 1.1) requires 7K for itself.
COM-AND.EXE (version 2.9) requires 277K for itself.
Therefore, you need 384K (minimally) for COM-AND, TALKER, and VOICE.
Version 1.1: 921012
TALKER: Voice driver for COM-AND Page 11
VII. Author information
TALKER was written using Microsoft Macro-Assembler. The author likes
assembler. Assembly language is an entirely appropriate vehicle for
some of the program, and a not-inappropriate vehicle for the rest.
The author of this program is R. Scott McGinnis of Chicago,
Illinois. GEnie and Delphi ID: TARTAN. CIS ID: 73147, 2665.
Comment and suggestions (and criticism in moderation) are welcomed:
CABER Software
R. (Scott) McGinnis
P.O. Box 3607 Mdse Mart
Chicago, IL 60654-0607
I wish to thank my wife, Elizabeth, for companioning me through these
many years. She even says she enjoys my harp! That's commitment.
<might be, too>
TALKER and VOICE may not be distributed without COM-AND or PC-VCO.
[It doesn't make a whole lot of sense to do so...] They are offered
ONLY for use with COM-AND or PC-VCO. COM-AND is 'shareware". If
you USE COM-AND/TALKER after evaluating it, you MUST pay for it.
[Please read the file REGISTER.DOC.]
Registrants of COM-AND are invited to contact the author if they
wish to use TALKER.OVL in other applications.
Version 1.1: 921012
TALKER: Voice driver for COM-AND Page 12
A. VOICE.EXE arpabet
Phonemes are represented to VOICE.EXE textually.
Vowels Consonants
------------------------- -----------------------
IY beet IH bit R red L yellow
EH bet AE bat W away Y yellow
AA hot AH under M men N men
AO talk UH look NX sing
ER bird OH border S sail SH rush
AX about IX solid F fed TH thin
Z has ZH pleasure
Dipthongs V very DH then
------------------------- CH check J judge
EY made AY hide /H hole /C loch
OY boil AW power B but P put
OW low UW crew D dog T toy
G guest K camp
Special symbols
-------------------------
DX pity (tongue flap)
Q kitt_en (glottal stop)
RX car LX call
(postvocalic R and L)
QX (silent vowel)
Contractions
-------------------------
UL = AXL IL = IXL
UM = AXM IM = IXM
UN = AXN IN = IXN
Punctuation
-------------------------
Digits 1-9 stress marks (unimplemented in version 1.1)
. sentence terminator
? sentence terminator
- phrase delimiter
, clause delimiter
( ) noun phrase delimiters (unimplemented in version 1.1)
For example:
"I can talk" would be written "ay kaen tawk "
Version 1.1: 921012 Appendices
TALKER: Voice driver for COM-AND Page 13
B. SPEECH.COM arpabet
Phonemes are represented to SPEECH.COM textually. Individual
phonemes are separated by "-" to make them sound smoothly.
Phonemes are:
a - tApe ae - hAt ah - fAther
aw - AWful b - Book ch - CHurch
d - Dog ee - fEEt eh - sEt
f - Find g - Get i - I
ih - sIt j - Just k - King
l - Look m - Make n - New
oh - hOE oo - bOOt p - Peek
r - Ring s - See sh - SHeep
t - Tool th - tooTH tz - THe
u - lOOk uh - Up v - View
w - Window wh - Where y - You
z - Zoo zh - whatever.
" " - pause between words
"-" - connect two or more phonemes
For example:
"I can talk" would be written "i k-ae-n t-aw-k "
Version 1.1: 921012 Appendices
TALKER: Voice driver for COM-AND Page 14
C. Exception File
The exception file distributed with PC-VCO is virtually the same
as used by the MacIntosh VCO. The exception file is a simple text
file, each line of which has the syntax:
"[" <keyword> "]" "=" <translation>
There are three types of keyword in the current exception file:
. Keywords without a special delimiter (e.g. [6] which gives a
pronunciation for numeric 6)
. Keywords with the initial delimiter "{". MacIntosh documentation
states these are displayed but not spoken. Why are they in the
exception file? Beats me.
. Keywords with the initial delimiter "[" (in addition to the
initial bracket). MacIntosh documentation states these are
voiced, and not displayed.
PC-VCO follows these rules, more or less. The exception file as
prepared for the MacIntosh MacTalk is compatible with the VOICE.EXE
speech driver; the 'old' exception file supplied with this release
is compatible with SPEECH.COM). Some changes have been made, but not
alot. Perhaps some brave soul will pitch in.
On the other hand, the exception file does provide pronunciation
for tokens that otherwise would be skipped by the present speech
driver (e.g. simple numerics).
Please note that this version of TALKER was distributed with one
exception file:
PC-VCO.EXC - Exception file for VOICE.EXE speech driver
Version 1.1: 921012 Appendices